package repository

import (
	"github.com/gin-gonic/gin"
	"ruoyi/domain/entity/common"
	"ruoyi/domain/entity/response"
	"ruoyi/domain/entity/system"
)

type SysUserRepository interface {
	FindUserByName(loginName string) system.SysUser

	IsAdminById(userId int) bool

	IsAdmin(user *system.SysUser) bool

	IsExistUserByPhoneNumber(phoneNumber string) bool

	IsExistUserByEmail(email string) bool

	FindUserById(id any) system.SysUser

	CheckUserDataScope(userId int, useridP int)

	SelectUserList(params common.SearchTableDataParam, isPage bool) common.TableDataInfo

	SelectUserParamList(params common.SearchTableDataParam, isPage bool) common.TableDataInfo

	GetUserDeptTree() []system.SysDeptDto

	ImportUserData(users []system.SysUserParam, updateSupport string) (string, string)

	SaveUser(user system.SysUserParam) string

	UploadUser(userParam system.SysUserParam)

	EditProfileUserInfo(userId int, param system.UserParam) response.Response

	DeleteUser(userId []int) response.Response

	DeleteUserById(userId []int) response.Response

	ResetPwd(param system.SysUserParam) response.Response

	FindUser(param system.LoginParam, context *gin.Context)

	IsExistUser(loginName string) bool

	UpdatePassWord(newPassWord string, user system.SysUser)

	UpdateAvatar(Filename string, user system.SysUser)

	ChangeUserStatus(param system.SysUserParam) response.Response
}
